#!/usr/bin/perl

$HOST_NAME=`hostname`;

sub make_txrpt_report
{

	local( $dst_file, $src_file, $DATE ) = @_;

	$MONTH = substr $DATE, 4, 2;
	$DAY = substr $DATE, 6, 2;

	$TXRPT_CMD="txrpt -d$MONTH/$DAY < $src_file > $dst_file";
	#$TXRPT_CMD="txrpt -d02/20 < $src_file > $dst_file";

	print LOG_FILE "1. make txrpt report\n";
	print LOG_FILE " ---- $TXRPT_CMD\n";
	$TXRPT_RET=`$TXRPT_CMD`;
}

sub make_dat_file
{
	local( $dat_file, $src_file, $DATE, $HOSTNAME ) = @_;

	print LOG_FILE "2. make loader data file\n";

	$row_cnt = 0;
	open( FILE, "<$src_file");
	while( $line = <FILE> ) {
		chomp $line;
		@val = split ' ', $line;

		if ( $val[0] eq 'SVCNAME' ) {

			for ( $i = 0; $i < 27; $i++){
				if( $val[$i] eq '') {
					$col_cnt = $i;
					last;
				}

				$idx[ $i] = $val[ $i];
				#printf "bbbbbb $i $idx[$i]  $val[0] > 0\n";
			} 

		}
		if ( !($val[0] eq "SERVICE") &&
			!($val[0] eq "") &&
			!($val[0] eq "SVCNAME") &&
			!($val[0] eq "Num/Avg") &&
			!($val[0] eq "---------------") &&
			!($val[0] eq "TOTALS")
		) {
		#	printf "---------> val[0]: $val[0] : $col_cnt\n"; 
		#	for( $j = 0; $j < $i; $j++ ){
		#		printf "i:$i j:$j "; 
		#	}

			$HOUR_00_C[$row_cnt] = 0; $HOUR_00_T[$row_cnt] = 0.00;
			$HOUR_01_C[$row_cnt] = 0; $HOUR_01_T[$row_cnt] = 0.00;
			$HOUR_02_C[$row_cnt] = 0; $HOUR_02_T[$row_cnt] = 0;
			$HOUR_03_C[$row_cnt] = 0; $HOUR_03_T[$row_cnt] = 0;
			$HOUR_04_C[$row_cnt] = 0; $HOUR_04_T[$row_cnt] = 0;
			$HOUR_05_C[$row_cnt] = 0; $HOUR_05_T[$row_cnt] = 0;
			$HOUR_06_C[$row_cnt] = 0; $HOUR_06_T[$row_cnt] = 0;
			$HOUR_07_C[$row_cnt] = 0; $HOUR_07_T[$row_cnt] = 0;
			$HOUR_08_C[$row_cnt] = 0; $HOUR_08_T[$row_cnt] = 0;
			$HOUR_09_C[$row_cnt] = 0; $HOUR_09_T[$row_cnt] = 0;
			$HOUR_10_C[$row_cnt] = 0; $HOUR_10_T[$row_cnt] = 0;
			$HOUR_11_C[$row_cnt] = 0; $HOUR_11_T[$row_cnt] = 0;
			$HOUR_12_C[$row_cnt] = 0; $HOUR_12_T[$row_cnt] = 0;
			$HOUR_13_C[$row_cnt] = 0; $HOUR_13_T[$row_cnt] = 0;
			$HOUR_14_C[$row_cnt] = 0; $HOUR_14_T[$row_cnt] = 0;
			$HOUR_15_C[$row_cnt] = 0; $HOUR_15_T[$row_cnt] = 0;
			$HOUR_16_C[$row_cnt] = 0; $HOUR_16_T[$row_cnt] = 0;
			$HOUR_17_C[$row_cnt] = 0; $HOUR_17_T[$row_cnt] = 0;
			$HOUR_18_C[$row_cnt] = 0; $HOUR_18_T[$row_cnt] = 0;
			$HOUR_19_C[$row_cnt] = 0; $HOUR_19_T[$row_cnt] = 0;
			$HOUR_20_C[$row_cnt] = 0; $HOUR_20_T[$row_cnt] = 0;
			$HOUR_21_C[$row_cnt] = 0; $HOUR_21_T[$row_cnt] = 0;
			$HOUR_22_C[$row_cnt] = 0; $HOUR_22_T[$row_cnt] = 0;
			$HOUR_23_C[$row_cnt] = 0; $HOUR_23_T[$row_cnt] = 0;

			$l_svc_name [ $row_cnt ] = $val[ 0 ];

			for ( $i = 1; $i < $col_cnt; $i++){

				@itemm = split '/', $val[$i];
			#	printf "########### $idx[$i]: $val[$i] --- $itemm[0] $itemm[1]\n"; 

				if( $idx[$i] eq '12m-1a' ){ $HOUR_00_C[$row_cnt] = $itemm[0]; $HOUR_00_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '1a-2a'  ){ $HOUR_01_C[$row_cnt] = $itemm[0]; $HOUR_01_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '2a-3a'  ){ $HOUR_02_C[$row_cnt] = $itemm[0]; $HOUR_02_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '3a-4a'  ){ $HOUR_03_C[$row_cnt] = $itemm[0]; $HOUR_03_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '4a-5a'  ){ $HOUR_04_C[$row_cnt] = $itemm[0]; $HOUR_04_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '5a-6a'  ){ $HOUR_05_C[$row_cnt] = $itemm[0]; $HOUR_05_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '6a-7a'  ){ $HOUR_06_C[$row_cnt] = $itemm[0]; $HOUR_06_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '7a-8a'  ){ $HOUR_07_C[$row_cnt] = $itemm[0]; $HOUR_07_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '8a-9a'  ){ $HOUR_08_C[$row_cnt] = $itemm[0]; $HOUR_08_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '9a-10a' ){ $HOUR_09_C[$row_cnt] = $itemm[0]; $HOUR_09_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '10a-11a'){ $HOUR_10_C[$row_cnt] = $itemm[0]; $HOUR_10_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '11a-12n'){ $HOUR_11_C[$row_cnt] = $itemm[0]; $HOUR_11_T[$row_cnt] = $itemm[1];}


				if( $idx[$i] eq '12n-1p' ){ $HOUR_12_C[$row_cnt] = $itemm[0]; $HOUR_12_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '13p-14p'){ $HOUR_13_C[$row_cnt] = $itemm[0]; $HOUR_13_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '14p-15p'){ $HOUR_14_C[$row_cnt] = $itemm[0]; $HOUR_14_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '15p-16p'){ $HOUR_15_C[$row_cnt] = $itemm[0]; $HOUR_15_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '16p-17p'){ $HOUR_16_C[$row_cnt] = $itemm[0]; $HOUR_16_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '17p-18p'){ $HOUR_17_C[$row_cnt] = $itemm[0]; $HOUR_17_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '18p-19p'){ $HOUR_18_C[$row_cnt] = $itemm[0]; $HOUR_18_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '19p-20p'){ $HOUR_19_C[$row_cnt] = $itemm[0]; $HOUR_19_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '20p-21p'){ $HOUR_20_C[$row_cnt] = $itemm[0]; $HOUR_20_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '21p-22p'){ $HOUR_21_C[$row_cnt] = $itemm[0]; $HOUR_21_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '22p-23p'){ $HOUR_22_C[$row_cnt] = $itemm[0]; $HOUR_22_T[$row_cnt] = $itemm[1];}
				if( $idx[$i] eq '11p-12m'){ $HOUR_23_C[$row_cnt] = $itemm[0]; $HOUR_23_T[$row_cnt] = $itemm[1];}

				if( $idx[$i] eq 'TOTALS'){ $RES_C[$row_cnt] = $itemm[0]; $RES_T[$row_cnt] = $itemm[1];}
			}

			$row_cnt += 1;
		
			#last;
		}

	}
	close( FILE);

	printf LOG_FILE " ---- row_cnt: $row_cnt\n";
	open( FILE, ">$dat_file");

	for ( $i = 0; $i < $row_cnt ; $i++ ) {
		printf FILE "$HOSTNAME|".
		"$DATE|".
		"$l_svc_name[$i]|".
		"$HOUR_00_C[$i]|"."$HOUR_00_T[$i]|".
		"$HOUR_01_C[$i]|"."$HOUR_01_T[$i]|".
		"$HOUR_02_C[$i]|"."$HOUR_02_T[$i]|".
		"$HOUR_03_C[$i]|"."$HOUR_03_T[$i]|".
		"$HOUR_04_C[$i]|"."$HOUR_04_T[$i]|".
		"$HOUR_05_C[$i]|"."$HOUR_05_T[$i]|".
		"$HOUR_06_C[$i]|"."$HOUR_06_T[$i]|".
		"$HOUR_07_C[$i]|"."$HOUR_07_T[$i]|".
		"$HOUR_08_C[$i]|"."$HOUR_08_T[$i]|".
		"$HOUR_09_C[$i]|"."$HOUR_09_T[$i]|".
		"$HOUR_10_C[$i]|"."$HOUR_10_T[$i]|".
		"$HOUR_11_C[$i]|"."$HOUR_11_T[$i]|".
		"$HOUR_12_C[$i]|"."$HOUR_12_T[$i]|".
		"$HOUR_13_C[$i]|"."$HOUR_13_T[$i]|".
		"$HOUR_14_C[$i]|"."$HOUR_14_T[$i]|".
		"$HOUR_15_C[$i]|"."$HOUR_15_T[$i]|".
		"$HOUR_16_C[$i]|"."$HOUR_16_T[$i]|".
		"$HOUR_17_C[$i]|"."$HOUR_17_T[$i]|".
		"$HOUR_18_C[$i]|"."$HOUR_18_T[$i]|".
		"$HOUR_19_C[$i]|"."$HOUR_19_T[$i]|".
		"$HOUR_20_C[$i]|"."$HOUR_20_T[$i]|".
		"$HOUR_21_C[$i]|"."$HOUR_21_T[$i]|".
		"$HOUR_22_C[$i]|"."$HOUR_22_T[$i]|".
		"$HOUR_23_C[$i]|"."$HOUR_23_T[$i]|".
		"$RES_C[$i]|"."$RES_T[$i]|".
		"\n";

	}
	close( FILE);
	printf LOG_FILE " ---- make file ( $dat_file )\n";
}

sub data_load
{
	local( $dat_file, $DATE, $HOSTNAME ) = @_;
	print LOG_FILE "3. load data\n";

	print LOG_FILE " ---- delete old data($HOSTNAME,$DATE)\n";
$del_cmd=`
sqlplus hubrpt/hubrpt <<! >>$TXLOG_FILE 2>&1
DELETE FROM TXLOG
WHERE NODE_NAME = '$HOSTNAME'
AND LOG_DATE = '$DATE';
!

`;

	printf LOG_FILE " ---- Execute loader\n";
$ldr_cmd=`
sqlldr hubrpt/hubrpt control=$APP_PATH/load_txlog.ctl data=$dat_file >>$TXLOG_FILE 2>&1
`
}

$APP_PATH='/EAI/eaiDomains/tuxdomain/app';

$LOG_FILE_DIR='/LOGS/broker';
$LOG_FILE_NAME='report.log';
$TMP_PATH='/LOGS/tuxedolog/txlog';

$TA_DATE=`export TZ=KORST+15;
date +"%Y%m%d"`;
chomp $TA_DATE;

$FN_DATE=`export TZ=KORST+15;
date +"%Y-%m-%d"`;
chomp $FN_DATE;

#$TA_DATE='20100130';
#$FN_DATE='2010-01-30';

$CURR_DATE=`date`;
chomp $CURR_DATE;

$HOSTNAME=`hostname`;
chomp $HOSTNAME;

$TXLOG_FILE=$TMP_PATH.'/txlog_'.$TA_DATE.'.log';
#print "----------$TXLOG_FILE\n";

open( LOG_FILE, ">$TXLOG_FILE");
print LOG_FILE "#### $CURR_DATE (target log : $FN_DATE)\n";

$OPTION = @ARGV[0];

if ( $OPTION eq 'install' ) {
	print " ---- $OPTION\n\n";
$CP_CMD=`
cp ./mk_rpt.pl $APP_PATH
cp ./load_txlog.ctl $APP_PATH
`;
	goto END;
}

$LOG_FILE_PATH="$LOG_FILE_DIR/$LOG_FILE_NAME.$FN_DATE";
$TXRPT_FILE_PATH="$TMP_PATH/$LOG_FILE_NAME.$TA_DATE.rep";
$DAT_FILE_PATH="$TMP_PATH/$LOG_FILE_NAME.$TA_DATE.dat";

stat($TMP_PATH);
$mkdir_cmd = `mkdir $TMP_PATH`  if !-e _ ;

my $finfo;
$finfo = stat($LOG_FILE_PATH);
if ( $finfo == 0 ) {
	print LOG_FILE " ---- LOG file not Exists.($LOG_FILE_PATH)\n";
	goto END;
}

&make_txrpt_report( $TXRPT_FILE_PATH, $LOG_FILE_PATH, $TA_DATE );
&make_dat_file( $DAT_FILE_PATH, $TXRPT_FILE_PATH, $TA_DATE, $HOSTNAME );
&data_load( $DAT_FILE_PATH, $TA_DATE, $HOSTNAME );

close( LOG_FILE);

END:
